﻿@model DHQGHN.PM0.Models.Admin.RoleModel
@using (
    Html.BeginForm(
        actionName: "actionCreateOrUpdateRole", controllerName: "Role", routeValues: new { }, method: FormMethod.Post
        , htmlAttributes: new
        {
            @id = "role-form",
            @class = "form-inline",
            @role = "form",
            @style = "width: 100%;"
        }))
{
    <div class="modal-body min-width">
        <div class="form-group">

            @Html.AntiForgeryToken()
            @Html.HiddenFor(m => m.RoleId, new {@id = "id" })
            <div>
                @Html.LabelFor(m => m.RoleName, new { @class = "labels", style = "width:100px;" })<span class="field-validation-error"> * </span>
                @Html.TextBoxFor(m => m.RoleName, new { @class = "TextBoxContent", style = "width:320px", @placeholder = "", @id= "idName" })
                <br />
                @Html.ValidationMessageFor(m => m.RoleName, null, new { @class = "Validation_Error", @style = "margin-left:120px; color:red; ", @id = "CheckName" })
            </div>
            <div>
                @Html.LabelFor(m => m.AppId, new { @class = "labels", style = "width:100px;" })<span class="field-validation-error">* </span>
                @Html.DropDownListFor(m => m.AppId, new SelectList(ViewBag.lstApp, "value", "text", 0), new { @class = "SelectBoxContent", @placeholder = "", @style = "width: 320px", @id = "IDapp" })
                <br />
                @Html.ValidationMessageFor(m => m.AppId, null, new { @class = "Validation_Error", @style = "margin-left:120px" })
            </div>
            <div id="roleCode">
                @Html.Label("Mã vai trò", new { @class = "labels", style = "width:100px;"})<span class="field-validation-error"> * </span>
                @Html.TextBoxFor(m => m.RoleCode, new { @class = "TextBoxContent", style = "width:320px", @placeholder = "",@id="IDrole" })
                <br />
                @Html.ValidationMessageFor(m => m.RoleCode, null, new { @class = "Validation_Error", @style = "margin-left:120px; color: red;", @id = "CheckCode" })
            </div>            
            <div>
                @Html.LabelFor(m => m.RoleDescription, new { @class = "labels", @for = "descriptions", style = "width:100px;" })<span> &nbsp; </span>
                @Html.TextAreaFor(m => m.RoleDescription, new { @class = "TextBoxContent", style = "width:320px; height:150px; vertical-align:top; resize:none", @placeholder = "", @cols = 80, @rows = 10, @id = "descriptions" })
                <br />
                @Html.ValidationMessageFor(m => m.RoleDescription, null, new { @class = "Validation_Error", @style = "margin-left:120px" })
            </div>

        </div>
    </div>
}

<div id="overlay" class="web_dialog_overlay"></div>
@Scripts.Render("~/bundles/jqueryval")
<script>
        @functions{
            public string GetAntiForgeryToken()
            {
                string cookieToken, formToken;
                AntiForgery.GetTokens(null, out cookieToken, out formToken);
                return cookieToken + "," + formToken;
            }
        }
</script>
<script>
    $(document).ready(function () {
        

        $('#IDapp').change(function () {
            if ($('#IDapp').val() == 0) {
                $("#CheckName").empty();
                $("#CheckName").append("");
                $("#CheckCode").empty();
                $("#CheckCode").append("");
            }
            else {
                $("#CheckCode").empty();
                $("#CheckCode").append("");
                $("#CheckName").empty();
                $("#CheckName").append("");
            }
        });       
    });
    
    var $roleForm = $("#role-form");
    function save() {
        var result = false;       
        if ($roleForm.valid()) {
            $.ajax({
                type: "POST",
                url: $roleForm.attr('action'),
                data: $roleForm.serialize(),
                dataType: '',//chú ý là form đặc biệt thì phải điền trường này
                async: false,
                headers: {
                    'VerificationToken': '@GetAntiForgeryToken()'
                },
                success: function (response) {
                    if (response != null && response.status == 200) {
                        window.notice(response.result, window.notice_success);
                        OnCriteria(crrPageIndex);
                        result = true;
                    } else {
                        window.notice(response.result, window.notice_error);
                    }
                }
            });
        }
        return result;
    }

function checkName() {
    var gan;
    $.ajax({
        type: "Get",
        url: '@Url.Action("CheckExistRoleNameView", "Role")',
        data: { roleName: $('#idName').val(), RoleId: $('#id').val(), AppId: $('#IDapp').val() },
        dataType: '',//chú ý là form đặc biệt thì phải điền trường này
        async: false,
        headers: {
            'VerificationToken': '@GetAntiForgeryToken()'
        },
        success: function (response) {
            if (response == false) {
                $("#CheckName").empty();
                $("#CheckName").append('Tên vai trò đã tồn tại');
                gan = false;
            }
            else {
                $("#CheckName").empty();
                $("#CheckName").append("");
                gan = true;
            }
        }
    });
        return gan;
}

function checkCode() {
    var gan;
    $.ajax({
        type: "Get",
        url: '@Url.Action("CheckExistRoleCodeView", "Role")',
        data: { roleCode: $('#IDrole').val(), RoleId: $('#id').val(), AppId: $('#IDapp').val() },
        dataType: '',//chú ý là form đặc biệt thì phải điền trường này
        async: false,
        headers: {
            'VerificationToken': '@GetAntiForgeryToken()'
        },
        success: function (response) {
            if ($('#IDrole').val() != "") {
                if (response == false) {
                    $("#CheckCode").empty();
                    $("#CheckCode").append('Mã vai trò đã tồn tại');
                    gan = false;
                }
                else {
                    $("#CheckCode").empty();
                    $("#CheckCode").append("");
                    gan = true;
                }
            }
        }
    });
    return gan;
}
    
</script>
